#pragma once
#include "Model.h"
#include "Light.h"
#include <string.h>

class Scene {

private:

	static std::vector<Model*> g_Geometry;
	static std::vector<tLight*> g_Light;

public:
	static bool Create();
	static bool Release();

	static bool GetGeometry(Model** pOut, tCharBuffer* pName);
	static bool InsertGeometry(Model* pIn);
	static bool RemoveGeometry(Model *pIn);

	static bool ApplyLights(const Render::tShader* pShader);
	static bool GetLight(tLight** pOut, tCharBuffer* pName);
	static bool InsertLight(tLight* pIn);
	static bool RemoveLight(tLight* pIn);

	static bool Draw();
	static bool Update();

	static bool WriteToDisk(std::string& filename);
	static bool ReadFromDisk(const std::string& filename);
	static bool WriteToDisk(Model* pMesh, std::string& filename);
	static bool ReadFromDisk(const std::string& filename, Model** pOut);
};